iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

昨天介紹完一些 Property Wrapper,接下來介紹一個專門進行資料存儲的 Prpperty Wrapper,不過介紹之前要先來了解一些東西。

資料儲存的方式

在介紹之前,先來介紹在 Swift 之中一些儲存資料的方式。在 Swift 中,資料儲存大致上有四種方式:UserDefault、FileManager、CoreData 以及 KeyChain。

這四種儲存方式會應用在不同的地方,例如:UserDefault 就是用來儲存一些經常使用且小型的資料,像是使用者設定之類的。

下面就分別列出四種儲存方式的特性:

UserDefault FileManager CoreData KeyChain
小型且常用的資料 大量且少用的資料 大量且有關聯性的資料 密碼
使用者設定等 文件、檔案等 資料庫 帳號、密碼等需要加密的資料
速度較快 速度較慢 可以優化 不討論

UserDefault

在介紹 Property Wrapper 之前,要先來介紹一下 UserDefault 這個東西,具體原因之後會在說明。

首先需要知道的是,UserDefault 是一種 Key-Value 的資料儲存方式,換句話說就是,你要對某筆資料進行存取時是需要透過 Key 來進行的。

知道了 UserDefault 的存取方式之後,需要了解的就是他支援的存儲類型有以下幾種:Object、URL、Array、Dictionary、String、StringArray、Data、Bool、Int、Float、Double 這幾種。

那接下來來實際操作一次,首先先將一些東西設定好,包含 UserDefault 的啟動、會使用到的 Key 以及這個檔案的啟動。

下面的 enum 裡列出想要使用的 Key,這裡為了配合之後會提到的 @AppStorage,這裡就先用這幾個類型來操作。

要使用的 Key 已經設定好了,接下來要做的就是設定 Key 對應的 Value 了,具體設定的方式 UserDefault 都有針對不同的類型提供不同的函式,而這裡有些地方要注意的是,在設定 get 的時候,有些類型是需要設定它的預設值的,畢竟在 App 剛開始運行的時候,裡面不一定會有資料,這時候裡面的資料會是 nil 的狀態,這裡需要針對 nil 的時候去設定它應該要回傳的值。

那今天就介紹到這裡,明天來正式的介紹 @AppStorage 這個東西。


上一篇
Day 15:Property Wrapper(2)
下一篇
Day 17:資料持久化(2)
系列文
SwiftUI學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言